#ifndef ASSUMPTION_H
#define ASSUMPTION_H

#include <qdebug.h>
#include <iostream>

enum CanBeInCell
{
    Can,
    NotCan
};

class Assumption
{
public:
    //Create object with assumption for all digits Can
    Assumption() ;
    ~Assumption() ;

    //Get CanBeInCell for current digit
    CanBeInCell getAssum( short digit ) ;

    short getExclusive() ;
    //Add digit in assumption
    bool addAssum( short digit ) ;
    //Delete digit from assumption
    bool delAssum( short digit ) ;

    bool operator== ( const Assumption& assum ) ;
    bool operator!= ( const Assumption& assum ) ;
    friend std::ostream& operator<<( std::ostream& out, Assumption assum ) ;

    short count() ;

private:
    CanBeInCell array[10] ;
};

#endif // ASSUMPTION_H
